<?php

/**
 * Результат, выполнения запроса
 * @author Shock
 */
interface IDbQueryResult
{
    /**
     * Определяет, есть ли следующая строка запроса и переходит на неё, либо возвращает false
     * Использование: while ($result->row()) { }
     * @return bool
     */
    function row ();

    /**
     * Возвращает определённую строку, или массив, или двумерный массив результата из бд. Примеры:
     * "field"   — получить значение последнего поля с таким названием
     * "*.field" — возвращает одномерный массив, где ключём будет имя таблицы, а значением — значения поля field в соответствующей таблице
     * "table.*" — получить ассоциативный массив, где ключ — имя поля в таблице table
     * "*.*"     — получить массив, в котором ключи — имена таблиц, а значение — массивы, в которых ключи — имена полей
     * "*"       — получить массив, в котором ключи — имена полей
     * ".field"  — получить значение группового поля, например "COUNT(*)"
     * @param string $field
     * @return string|array
     */
    function get ($field);

    /**
     * Возвращает autoincrement ID последней вставленной записи
     * @return int
     */
    function getId ();

    /**
     * Возвращает количество затронутых, или полученных select'ом строк
     * @return int
     */
    function getNum ();

    /**
     * Получить ошибку, или null, если ошибок не было
     * @return string|null
     */
    function getError ();
}
?>
